package com.cictec.middleware.tde.rm.protocol.rm.encode;

import java.nio.ByteBuffer;

import com.cictec.middleware.commons.utils.BinaryUtils;
import com.cictec.middleware.tde.exception.MessageEncoderException;
import com.cictec.middleware.tde.rm.protocol.AbstractMessageEncoder;
import com.cictec.middleware.tde.rm.protocol.TerminalMessage;
import com.cictec.middleware.tde.rm.protocol.annotion.TerminalMessageEncoder;
import com.cictec.middleware.tde.rm.protocol.rm.message.Rm0xCAPlatformMessage;
import com.cictec.middleware.tde.rm.protocol.rm.utils.RmBinaryUtils;

/**
 * 0xCA 指令应答
 * @author Zhibin
 *
 */
@TerminalMessageEncoder(0xCA)
public class Rm0xCAEncoder extends AbstractMessageEncoder {

	@Override
	public byte[] encode(TerminalMessage msg) throws MessageEncoderException {
		Rm0xCAPlatformMessage pir = (Rm0xCAPlatformMessage) msg;

		ByteBuffer out = ByteBuffer.allocate(256);

		RmBinaryUtils.dateToDwordRM(pir.getResponseTime(), out);
		BinaryUtils.intToWord(pir.getId(), out);
		BinaryUtils.intToWord(pir.getReserved(), out);

		return toBytes(out);
	}

}
